一般公開された Amazon Aurora Serverless v2 を東京リージョンで試してみた
AWSチームのすずきりょうです。
2020年の re:Invent で発表された Amazon Aurora Serverless v2 が 2022年4月21日に一般公開されました。
Aurora Serverless v2 の DBクラスタを東京リージョンで作成、その動作を試す機会がありましたので紹介させていただきます。
データベースの作成
RDSダッシュボードを利用し Amazon Aurora Serverless v2 のDBクラスタを作成しました。
- エンジンのタイプ: 「Amazon Aurora」
- Serveless v2をサポートするエンジンバージョン:「Aurora MySQL 3.02.0 (Compatible with MySQL8.0.23)
- DBインスタンスクラス: 「サーバレス」(Serveless v2)
- 最小ACU:8、最大ACU:64 (デフォルト)
- マルチAZ配置: 有効 (デフォルト)
- Performance Insights: 有効にする (デフォルト)
所要時間
マルチAZ配置のDBクラスタ作成、今回の所要時間は20分強でした。
イベント | 時刻 |
---|---|
DBクラスタ作成開始 | 2:22:05 AM UTC |
ライターインスタンス作成完了 | 2:34:00 AM UTC |
リーダーインスタンス作成完了 | 2:45:59 AM UTC |
動作確認
初期ACU
作成直後のAmazon Aurora Serverless v2 のACU値を、CloudWatchのメトリック「ServerlessDatabaseCapacity」で確認しました。
- インスタンスの作成直後のACUの値は32でした。
- 無負荷状態では、最小ACUの指定値(今回は8)まで段階的に低下していました。
INNODB_BUFFER_POOL_SIZE
CLIを利用し、ACU値「8」で稼働中のDBの状態を確認しました。
$ DBHOST='aurora-ss-v2.cluster-xxxxxxx.ap-northeast-1.rds.amazonaws.com' $ echo 'SELECT @@GLOBAL.INNODB_BUFFER_POOL_SIZE/1024/1024' | mysql -h ${DBHOST} -P 3306 -u admin -p @@GLOBAL.INNODB_BUFFER_POOL_SIZE/1024/1024 7534.75000000
sysbench
最小ACU値「0.5」で動作している AuroraServless v2 のDBクラスタに対し、 sysbenchを利用して DBの読み書き処理(oltp_read_write)を、8並列(threads=8)、5分間(time=300) 発生させてみました。
sudo su - ec2-user curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench DBHOST='aurora-ss-v2.cluster-xxxxxxx.ap-northeast-1.rds.amazonaws.com' DBPASS='xxxxxxx' echo 'CREATE DATABASE benchmark' | mysql -h ${DBHOST} -P 3306 -u admin -p # prepare sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ oltp_read_write \ prepare # run sysbench --db-driver=mysql \ --mysql-host=${DBHOST} \ --mysql-user=admin \ --mysql-password=${DBPASS} \ --mysql-db=benchmark \ --time=300 \ --threads=8 \ oltp_read_write \ run
CloudWatch
- DatabaseConnections、sysbenchの8並列処理と一致する値が記録されていました。
- ACU (ServerlessDatabaseCapacity)、初期の「0.5」では処理性能が不足し、CPU使用率が100%となる過負荷が発生していました。
- AuroraServless V2の 性能調整により、ACUは 11.5まで上昇、CPU使用率が100%に張り付く過負荷は、約2分で解消していました。
- 負荷が収束した後ACU値は段階的に縮小し、約20分で最小の0.5に戻りました。
パフォーマンスインサイト
sysbench処理中のDB負荷発生状況を確認ができました。
費用
Aurora Serverless v2、ACU (Aurora Capacity Unit) の1時間あたりの単価は、v1の2倍に設定されています。
Aurora Serverless v2
- 東京リージョン: $0.20 per ACU Hour
- 北米リージョン: $0.12 per ACU Hour
Aurora Serverless v1
- 東京リージョン: $0.10 per ACU Hour
- 北米リージョン: $0.06 per ACU Hour
月額コスト試算
最大ACUを0.5とした「最小構成」と、最小ACU8でマルチAZ配置を有効にした「本番構成」で、30日間連続稼働させたコストを試算してみました。
構成 | 月額コスト(USD) | ACU時間単価 | ACU数 | インスタンス台数 | 時間 | 日数 |
---|---|---|---|---|---|---|
最小構成(北米) | $43.2 | $0.12 | 0.5 | 1 | 24 | 30 |
最小構成(東京) | $72 | $0.2 | 0.5 | 1 | 24 | 30 |
本番構成(北米) | $1382.4 | $0.12 | 8 | 2 | 24 | 30 |
本番構成(東京) | $2304 | $0.2 | 8 | 2 | 24 | 30 |
本番稼働用のテンプレートのデフォルト設定を利用して v2の DBクラスタを作成する場合、そのコストにご留意ください。
まとめ
Aurora Serverless v2、従来のv1と比較して、DB性能調整の高速化や、高い可用性での利用が期待できます。
短時間にスパイク的なDB負荷が発生したり、利用規模が右肩上がりでその上限の見極めが難しいワークロードで DBとしてAuroraを採用する場合、 Aurora Serverless v2 をお試しください。
なお、従来の Aurora Serverless v1 も 引き続き提供されます。 v1で停止状態のDBのコールドスタートが問題にならない場合や、v2の性能を必要としないワークロードであれば、廉価なACU単価で利用できるv1をご活用ください。